package com.cn.wanxi.servlet;

import com.cn.wanxi.dto.HomeModelDto;
import com.cn.wanxi.model.ResultModel;
import com.cn.wanxi.service.IHomeService;
import com.cn.wanxi.service.impl.HomeServiceImpl;
import net.sf.json.JSONArray;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/home")
public class HomeServlet extends HttpServlet {
    /**
     * 1.home主页，包含公司信息，新闻信息，产品信息
     *      1）公司信息
     *      2）新闻信息存入数据库
     *      3）产品信息存入数据库
     * 2.第四阶段：数据库MySQL
     *      1）会在java后台src下面多几个包
     *          dto：和页面的数据继续对应
     *          model:和数据库的字段名进行对应
     *          dao：数据接口层
     *              impl：数据实现层
     *          service：服务逻辑层接口层
     *              serviceImpl：服务逻辑实现层
     *          Servlet：页面
     *          util:工具类
     * 3:首先我们做一个公司信息的录入
     *     1）第三阶段：我们将数据写入记事本
     *     2）所以这个阶段我们只需要将数据存入数据库，所以只需要替换CompanyModelIO
     *          1。在Servlet里面
     *              页面层只和服务层相关，
     *          2。在service里面
     *              新建了IHomeService
     *              新建了实现层HomeServiceImpl
     *          3.在serviceImpl下面
     *          4。在dao数据接口层里面
     *          5。在dao下面的impl里面
     *          6.在util下面
     *              JDBC链接数据库
     *         以上顺序不能打乱，是程序员的自我约束
     * 4.导航：
     *      1.新建数据库表
     *          数据库表：nav_one
     *          列名称：id,href,title
     *
     *      2.写后台逻辑代码
     *          1).新增数据
     *          2）删除数据
     *          3）修改数据
     *          4）查询数据
     *      3.写管理页面（导航的管理页面）
     *５．
     */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//        CommonIO commonIO=new CommonIO();
//        req.setAttribute("commonModelDto",commonIO.getFromCommon());
//        HomeIO homeIO = new HomeIO();
//        req.setAttribute("homeModelDto", homeIO.getFromHomeIO());
        //这里需要调用服务逻辑层的代码,显示公司信息，先存人后查询，再封装，这个在逻辑层去完成

        //servlet这一层只和页面相关
        //左边是接口类，右边是实现类
//        ICommonService iCommonService=new CommonServiceImpl();
//        req.setAttribute("commonModelDto",iCommonService.getCommonModelDto());
//
//
//        IHomeService iHomeService=new HomeServiceImpl();
//        req.setAttribute("homeModelDto",iHomeService.getHomeModelDto());
//        req.getRequestDispatcher("/jsp/home.jsp").forward(req, resp);//将值转发到页面去

        IHomeService iHomeService=new HomeServiceImpl();
        ResultModel resultModel=iHomeService.getHomeModelDto();

        JSONArray jsonArray=JSONArray.fromObject(resultModel);
        resp.getWriter().println(jsonArray);

    }
}
